Portable electronic devices such as cellular telephones and personal digital assistants are now available with the capability to present multimedia. Examples of multimedia include graphics or pictures, video, MP3 audio files, and combinations thereof.
The Multi-Media Card Association and the SD Association promote an industry-standard that specifies electrical and physical specifications for multi-media devices for use with portable communications equipment such as cellular telephones. When used with a cellular telephone, a so-called multi-media device can provide ring tones, games, pictures, video, audio files and the like. A problem with multi-media devices such as multi-media cards (hereafter referred to as multi-media devices), however, is that an electronic device to which they are coupled, can effectively slow down because of the rate at which commands to the multi-media devices are executed and the data rate at which information is sent to and received from such devices.
By way of example, in the prior art, a multi-media device interface couples a processor or other controller for a portable electronic device such as a portable radio or cellular phone, to a multi-media device. When the portable electronic device sends a command to the multi-media device, it passes through a multi-media device interface, which sends the data request to the multi-media device. If the controller for the portable device requests a data transfer, it will usually specify the amount of data that should be read as well. The multi-media device will send a response to the data request and begin sending data. The amount of data specified by the controller for the portable electronic device will be sent by the multi-media device. The ability to send commands to the multi-media device at any time would improve the performance of portable communications devices to which a multi-media device is coupled.
Another problem associated with data transfer, more specifically sending write data in a streaming mode to the multi-media storage device, is the synchronization of a stop data transmission command with the write data. For synchronization, once a stop data transmission command is executed, the multi-media storage device expects to receive a final six packets of write data, wherein a data packet is typically a byte of data.
Previous solutions to overcoming this limitation include the usage of a direct memory access (DMA) controller, which contains a control bit that is activated in response to the stop data transmission command. Once the control bit is activated, the DMA then writes the final six packets of write data stored in a FIFO buffer. Thereby, the DMA controller must keep track of the number of data packets being transferred and also must maintain a reserve of data packets for when the stop data transmission command is generated. Another such example of a multi-media interface controller requires pre-programming of the total number of write data packets to be written to the multi-media storage device, such as disclosed by an ARM PrimeCell multi-media interface card, available from ARM, Inc., which requires tracking of the write data so the timing of the stop data transmission command is properly aligned with the end of the write data provided to the multi-media storage device.